export namespace SprintBoard {
  /**
   * 看板状态枚举
   */
  export enum KanbanStatus {
    /** 待开始 */
    TODO = "0",
    /** 进行中 */
    IN_PROGRESS = "1",
    /** 已完成 */
    DONE = "2"
  }

  /**
   * 负责人类型枚举
   */
  export enum AssigneeType {
    /** 前端负责人 */
    FRONTEND = "0",
    /** 后端负责人 */
    BACKEND = "1",
    /** 测试负责人 */
    TEST = "2"
  }

  /**
   * 需求卡片信息扩展
   */
  export interface RequirementCard {
    /** 需求ID */
    id: string;
    /** 需求摘要 */
    summary: string;
    /** 需求状态 */
    state: KanbanStatus;
    /** 前端工作量 */
    front_workload: number;
    /** 后端工作量 */
    back_workload: number;
    /** JT单号 */
    jt_no: string;
    /** 重要性等级 */
    important: number;
    /** 当前负责人 */
    assignees: {
      /** 前端负责人 */
      frontend?: string;
      /** 后端负责人 */
      backend?: string;
      /** 测试负责人 */
      test?: string;
    };
    /** 需求拖动时间 */
    moved_at?: Date;
    /** 当前状态停留时间 */
    stay_duration?: number;
    /** 创建时间 */
    create_at: Date;
  }

  /**
   * 泳道信息
   */
  export interface KanbanLane {
    /** 泳道状态 */
    status: KanbanStatus;
    /** 泳道标题 */
    title: string;
    /** 需求卡片列表 */
    cards: RequirementCard[];
  }

  /**
   * 负责人分配信息
   */
  export interface AssigneeInfo {
    /** 前端负责人ID */
    frontend?: string;
    /** 后端负责人ID */
    backend?: string;
    /** 测试负责人ID */
    test?: string;
  }
}
